{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**通用最佳实践回顾**\n",
    "\n",
    "- 仅支持前向遍历；若需双向或随机访问改用 `std::list` / `std::vector`。\n",
    "- 插入与删除使用 `insert_after` / `erase_after`，需持有“前驱”迭代器；起始位置配合 `before_begin()`。\n",
    "- 迭代器稳定（除被移除元素），适合遍历过程中修改结构。\n",
    "- 不提供 `size()`（C++20 仍需手动统计或维护计数），批量操作时可自行维护元素数。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "| 序号 | 工程场景               | 文件名                               | 说明要点                                                     | 可运行示例代码       |\n",
    "| ---- | ---------------------- | ------------------------------------ | ------------------------------------------------------------ | -------------------- |\n",
    "| 1    | 滑动窗口流水线阶段编排 | `forward_list_pipeline.cpp`          | 单向遍历列出并插入阶段，`insert_after` 在定位节点后 O(1) 插入 | 示例 1：单向流水线   |\n",
    "| 2    | 对象池空闲链管理       | `forward_list_object_pool.cpp`       | 使用前插/前删回收节点，`push_front` 维护轻量空闲链           | 示例 2：对象池空闲链 |\n",
    "| 3    | 嵌入式轻量任务队列     | `forward_list_intrusive_adapter.cpp` | 仅需一次遍历执行批处理，`clear` 快速复用                     | 示例 3：轻量任务队列 |\n",
    "| 4    | 图邻接表存储           | `forward_list_graph_edges.cpp`       | 稀疏图按节点维护单向边表，适合 BFS/DFS 只读访问              | 示例 4：邻接表       |\n",
    "| 5    | 一次性过期会话清理     | `forward_list_sweep_cleanup.cpp`     | 遍历期间用 `erase_after` 删除失效节点，前驱迭代器保持稳定    | 示例 5：一次性清理   |"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 示例 1：单向流水线处理 (forward_list_pipeline.cpp)\n",
    "- 示例 2：对象池空闲链 (forward_list_object_pool.cpp)\n",
    "- 示例 3：嵌入式轻量容器 (forward_list_intrusive_adapter.cpp)\n",
    "- 示例 4：邻接表存储 (forward_list_graph_edges.cpp)\n",
    "- 示例 5：一次性清理 (forward_list_sweep_cleanup.cpp)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "C++17",
   "language": "C++17",
   "name": "xcpp17"
  },
  "language_info": {
   "name": "C++17"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
